<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- 
      PS： 前端ajax上传文件注意的两件事情
        1. 请求头的 Content-Type 需要是  multipart/form-data
        2. 参数需要通过 new FormData() 的方式去传递
          axios 最新的版本可以不用处理

     -->

    <h1>文件上传</h1>

    <input id="input" type="file" />

    <button id="btn">上传</button>

    <script src="https://unpkg.com/axios@1.3.5/dist/axios.min.js"></script>
    <script>
      const btnEl = document.querySelector("#btn");

      btnEl.onclick = function () {
        // 获取到 文件选择框，选择的文件对象
        // console.log(document.querySelector("#input").files);
        const file = document.querySelector("#input").files[0];
        console.log("file", file);

        // 构建一个 FormData 对象（表单数据对象）
        const formData = new FormData();
        formData.append("file", file);
        formData.append("userId", "1000");

        axios
          .post("http://localhost:3000/upload", formData, {
            headers: {
              "Content-Type": "multipart/form-data",
            },
          })
          .then((resp) => {
            console.log(resp);
          })
          .catch((error) => {
            console.log("error", error);
          });
      };
    </script>
  </body>
</html>
